package cn.com.dcsgo.interceptor;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;

import java.util.UUID;

/**
 * Feign请求拦截器，为Feign请求添加token
 * 实现 feign.RequestInterceptor 接口
 * 并将其装配到IoC容器即可
 * 常用的用法是通过Feign请求拦截器
 * 将整个请求链路中需要共享的数据添加到请求头中(如 token 中)
 *
 * @author Dcsgo
 * @since 2025/3/16 8:50
 */
@Component
public class FeignTokenRequestInterceptor implements RequestInterceptor {
    /**
     * 使用 RequestTemplate 参数对我们的请求进行处理
     *
     * @param requestTemplate requestTemplate
     */
    @Override
    public void apply(RequestTemplate requestTemplate) {
        requestTemplate.header("token", UUID.randomUUID().toString());
        System.out.println("FeignTokenRequestInterceptor.apply");
    }
}
